﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

using Padelcenter.Common;

namespace Padelcenter.DataAccess
{
    #region " SELECT "
    #region "Disponibilidad Select"
    public class Disponibilidad_Select : DataAccessBase
    {
        public Disponibilidad_Select()
        {
            StoredProcedureName = StoredProcedure.Name.Disponibilidad_SELECT.ToString();
        }
        public DataSet Get()
        {
            DataSet ds;

            Disponibilidad_Select_Prm disponibilidad_Select_Prm = new Disponibilidad_Select_Prm(this.Disponibilidad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidad_Select_Prm.Parameters);

            return ds;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
    }

    public class Disponibilidad_Select_Prm
    {
        public Disponibilidad_Select_Prm(Disponibilidad disponibilidad)
        {
            this.Disponibilidad = disponibilidad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idDisponibilidad"   , this.Disponibilidad.IdDisponibilidad ),
                new SqlParameter( "@Descripcion"        , this.Disponibilidad.Descripcion ),
                new SqlParameter( "@ConFiltroActivo"    , this.Disponibilidad.ConFiltroActivo),
                new SqlParameter( "@Activo"             , this.Disponibilidad.Activo)
            };

            this.Parameters = parameters;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion

    #region "Disponibilidad Descripcion Select"

    public class DisponibilidadDescripcion_Select : DataAccessBase
    {
        public DisponibilidadDescripcion_Select()
        {
            StoredProcedureName = StoredProcedure.Name.DisponibilidadDescripcion_SELECT.ToString();
        }
        public DataSet Get()
        {
            DataSet ds; 
            DisponibilidadDescripcion_Select_Prm disponibilidadDescripcion_Select_Prm = new DisponibilidadDescripcion_Select_Prm(this.DisponibilidadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidadDescripcion_Select_Prm.Parameters);

            return ds;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }
    }

    public class DisponibilidadDescripcion_Select_Prm
    {
        public DisponibilidadDescripcion_Select_Prm(DisponibilidadDescripcion disponibilidadDescripcion)
        {
            this.DisponibilidadDescripcion = disponibilidadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idDisponibilidad"   , this.DisponibilidadDescripcion.Disponibilidad.IdDisponibilidad ),
                new SqlParameter( "@idIdioma"           , this.DisponibilidadDescripcion.Idioma.IdIdioma)
            };

            this.Parameters = parameters;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }

        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    
    #endregion
    #endregion

    #region " INSERT "
    #region " Disponibilidad Insert "
    public class Disponibilidad_Insert : DataAccessBase
    { 
        public Disponibilidad_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.Disponibilidad_INSERT.ToString();
        }
        public DataSet Get()
        {
            DataSet ds;

            Disponibilidad_Insert_Prm disponibilidad_Insert_Prm = new Disponibilidad_Insert_Prm(this.Disponibilidad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidad_Insert_Prm.Parameters);

            return ds;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
    }
    
    public class Disponibilidad_Insert_Prm
    { 
        public Disponibilidad_Insert_Prm(Disponibilidad disponibilidad)
        {
            this.Disponibilidad = disponibilidad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@Descripcion" , this.Disponibilidad.Descripcion),
                new SqlParameter( "@Activo"      , this.Disponibilidad.Activo)
            };

            this.Parameters = parameters;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    
    #endregion

    #region " Disponibilidad Descripcion Insert "
    public class DisponibilidadDescripcion_Insert : DataAccessBase
    {
        public DisponibilidadDescripcion_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.DisponibilidadDescripcion_INSERT.ToString();
        }
        public DataSet Get()
        {
            DataSet ds;

            DisponibilidadDescripcion_Insert_Prm disponibilidadDescricpion_Insert_Prm = new DisponibilidadDescripcion_Insert_Prm(this.DisponibilidadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidadDescricpion_Insert_Prm.Parameters);

            return ds;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }
    }

    public class DisponibilidadDescripcion_Insert_Prm
    {
        public DisponibilidadDescripcion_Insert_Prm(DisponibilidadDescripcion disponibilidadDescripcion)
        {
            this.DisponibilidadDescripcion = disponibilidadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idDisponibilidad"   , this.DisponibilidadDescripcion.Disponibilidad.IdDisponibilidad),
                new SqlParameter( "@idIdioma"           , this.DisponibilidadDescripcion.Idioma.IdIdioma),
                new SqlParameter( "@Descripcion"        , this.DisponibilidadDescripcion.Descripcion)
                
            };

            this.Parameters = parameters;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }

        
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion
    #endregion

    #region " UPDATE "
    #region " Disponibilidad Update "
    public class Disponibilidad_Update : DataAccessBase
    {
        public Disponibilidad_Update()
        {
            StoredProcedureName = StoredProcedure.Name.Disponibilidad_UPDATE.ToString();
        }
        public DataSet Get()
        {
            DataSet ds;

            Disponibilidad_Update_Prm disponibilidad_Update_Prm = new Disponibilidad_Update_Prm(this.Disponibilidad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidad_Update_Prm.Parameters);

            return ds;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
    }

    public class Disponibilidad_Update_Prm
    {
        public Disponibilidad_Update_Prm(Disponibilidad disponibilidad)
        {
            this.Disponibilidad = disponibilidad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idDisponibilidad" , this.Disponibilidad.IdDisponibilidad),
                new SqlParameter( "@Descripcion" , this.Disponibilidad.Descripcion),
                new SqlParameter( "@Activo"      , this.Disponibilidad.Activo)
            };

            this.Parameters = parameters;
        }

        private Disponibilidad _disponibilidad;

        public Disponibilidad Disponibilidad
        {
            get { return _disponibilidad; }
            set { _disponibilidad = value; }
        }
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }

    #endregion

    #region " Disponibilidad Descripcion Update "
    public class DisponibilidadDescripcion_Update : DataAccessBase
    {
        public DisponibilidadDescripcion_Update()
        {
            StoredProcedureName = StoredProcedure.Name.DisponibilidadDescripcion_UPDATE.ToString();
        }
        public DataSet Get()
        {
            DataSet ds;

            DisponibilidadDescripcion_Update_Prm disponibilidadDescricpion_Update_Prm = new DisponibilidadDescripcion_Update_Prm(this.DisponibilidadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, disponibilidadDescricpion_Update_Prm.Parameters);

            return ds;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }
    }

    public class DisponibilidadDescripcion_Update_Prm
    {
        public DisponibilidadDescripcion_Update_Prm(DisponibilidadDescripcion disponibilidadDescripcion)
        {
            this.DisponibilidadDescripcion = disponibilidadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idDisponibilidad"   , this.DisponibilidadDescripcion.Disponibilidad.IdDisponibilidad),
                new SqlParameter( "@idIdioma"           , this.DisponibilidadDescripcion.Idioma.IdIdioma),
                new SqlParameter( "@Descripcion"        , this.DisponibilidadDescripcion.Descripcion)
                
            };

            this.Parameters = parameters;
        }

        private DisponibilidadDescripcion _disponibilidadDescripcion;

        public DisponibilidadDescripcion DisponibilidadDescripcion
        {
            get { return _disponibilidadDescripcion; }
            set { _disponibilidadDescripcion = value; }
        }


        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }
    #endregion
    #endregion
}
